package com.library.service.impl;


import com.library.common.core.text.Convert;
import com.library.common.utils.StringUtils;
import com.library.domain.BoBook;
import com.library.mapper.BoBookMapper;
import com.library.service.IBoBookService;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 图书馆图书 服务层实现
 *
 * @author wanghongjie
 * @date 2020-01-18
 */
@Service
public class BoBookServiceImpl implements IBoBookService {

    /**
     * 图书编号是否唯一的返回结果码
     */
    public final static String BOOK_NO_UNIQUE = "0";
    public final static String BOOK_NO_NOT_UNIQUE = "1";

    @Autowired
    private BoBookMapper boBookMapper;

    /**
     * 查询图书馆图书信息
     *
     * @param id 图书馆图书ID
     * @return 图书馆图书信息
     */
    @Override
    public BoBook selectBoBookById(Long id) {
        return boBookMapper.selectBoBookById(id);
    }

    @Override
    public BoBook selectBoBookByBookNo(String bookNo) {
        return boBookMapper.selectBoBookByBookNo(bookNo);
    }

    /**
     * 查询图书馆图书列表
     *
     * @param boBook 图书馆图书信息
     * @return 图书馆图书集合
     */
    @Override
    public List<BoBook> selectBoBookList(BoBook boBook) {
        return boBookMapper.selectBoBookList(boBook);
    }

    /**
     * 新增图书馆图书
     *
     * @param boBook 图书馆图书信息
     * @return 结果
     */
    @Override
    public int insertBoBook(BoBook boBook) {
        return boBookMapper.insertBoBook(boBook);
    }

    /**
     * 修改图书馆图书
     *
     * @param boBook 图书馆图书信息
     * @return 结果
     */
    @Override
    public int updateBoBook(BoBook boBook) {
        return boBookMapper.updateBoBook(boBook);
    }

    /**
     * 删除图书馆图书对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteBoBookByIds(Long[] ids) {
        return boBookMapper.deleteBoBookByIds(ids);
    }

    @Override
    public String checkBookNoUnique(BoBook boBook) {
        Long bookId = StringUtils.isNull(boBook.getId()) ? -1L : boBook.getId();
        BoBook info = boBookMapper.checkBookNoUnique(boBook.getBookNo());
        if (StringUtils.isNotNull(info) && info.getId().longValue() != bookId.longValue()) {
            return BOOK_NO_NOT_UNIQUE;
        }
        return BOOK_NO_UNIQUE;
    }

}
